<script>
	export default {
		onLaunch: function() {
			console.log('App Launch');
			// 预加载一些全局设置
			this.initializeApp();
		},
		onShow: function() {
			console.log('App Show');
			// 在应用进入前台后延迟检查登录状态，确保页面已加载
			setTimeout(() => {
				this.checkLoginStatus();
			}, 300);
		},
		onHide: function() {
			console.log('App Hide');
		},
		methods: {
			// 应用初始化
			initializeApp() {
				// 获取token
				const token = uni.getStorageSync('token');
				console.log('应用启动时检查token:', token);
				
				// 这里可以添加一些全局初始化代码
				// 注意：我们不再自动跳转到登录页，而是在首页中根据需要处理登录
			},
			
			// 应用运行中的登录状态检查
			checkLoginStatus() {
				// 获取token
				const token = uni.getStorageSync('token');
				
				// 获取当前页面路径
				const pages = getCurrentPages();
				if (!pages || pages.length === 0) {
					console.log('当前没有页面实例，跳过检查');
					return;
				}
				
				const currentPage = pages[pages.length - 1];
				const currentPageRoute = currentPage ? currentPage.route : '';
				console.log('当前页面:', currentPageRoute, '登录状态:', !!token);
				
				// 如果已登录且当前在登录页，则跳转到首页
				if (token && currentPageRoute === 'pages/login/login') {
					console.log('已登录，从登录页跳转到首页');
					uni.switchTab({
						url: '/pages/index/index'
					});
					return;
				}
				
				// 如果在首页或需要登录的页面但未登录，根据页面配置决定是否需要跳转到登录页
				if (!token && currentPageRoute) {
					// 这些页面需要登录才能访问
					const requiresAuthPages = [
						'pages/mine/mine', 
						'pages/paymentOrder/payment0rder',
						'pages/chargingProgress/chargingProgress'
					];
					
					// 如果当前页面需要登录授权
					if (requiresAuthPages.includes(currentPageRoute)) {
						console.log('当前页面需要登录，跳转到登录页');
						uni.navigateTo({
							url: '/pages/login/login'
						});
					} else if (currentPageRoute === 'pages/index/index') {
						// 首页根据功能需要可能显示登录提示，但不强制跳转
						console.log('在首页，未登录状态');
						// 可以在这里设置一个全局状态，让首页知道用户未登录
						uni.setStorageSync('needLogin', true);
					}
				}
			}
		}
	}
</script>

<style>
	/*每个页面公共css */
	page {
		font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica, Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei', sans-serif;
	}
	
	/* Button normalization */
	button::after {
		border: none;
	}
</style>
